<!DOCTYPE html><html><head><title>Omnium 规则文档</title><meta charset='utf-8'><link href='https://dn-maxiang.qbox.me/res-min/themes/marxico.css' rel='stylesheet'><style></style></head><body><div id='preview-contents' class='note-content'>
                        
                    



<h1 id="omnium-规则文档">Omnium 规则文档</h1>

<div><div class="toc"><div class="toc">
<ul>
<li><a href="#omnium-规则文档">Omnium 规则文档</a><ul>
<li><a href="#逻辑更新日志">逻辑更新日志</a><ul>
<li><a href="#3月31日紧急更新">3月31日紧急更新</a><ul>
<li><a href="#sdk">SDK</a></li>
</ul>
</li>
<li><a href="#3月30日更新">3月30日更新</a><ul>
<li><a href="#sdk-1">SDK</a></li>
<li><a href="#修复">修复</a></li>
<li><a href="#游戏性">游戏性</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#概述">概述</a><ul>
<li><a href="#地图游戏目标">地图、游戏目标</a></li>
</ul>
</li>
<li><a href="#能量与采集">能量与采集</a><ul>
<li><a href="#分裂进退化">分裂、进退化</a></li>
<li><a href="#机器人类型与技能">机器人类型与技能</a></li>
</ul>
</li>
<li><a href="#单位属性">单位属性</a><ul>
<li><a href="#最大hp">最大HP</a></li>
<li><a href="#攻击力">攻击力</a></li>
<li><a href="#防御力">防御力</a></li>
<li><a href="#采集效率">采集效率</a></li>
<li><a href="#传输效率">传输效率</a></li>
<li><a href="#消耗">消耗</a></li>
<li><a href="#升级所需要的能量总量">升级所需要的能量总量</a></li>
</ul>
</li>
<li><a href="#游戏流程">游戏流程</a><ul>
<li><a href="#回合结算流程">回合结算流程</a></li>
<li><a href="#胜负判定">胜负判定</a></li>
</ul>
</li>
<li><a href="#公共技能">公共技能</a><ul>
<li><a href="#普通攻击">普通攻击</a></li>
<li><a href="#分裂">分裂</a></li>
<li><a href="#进化">进化</a></li>
<li><a href="#退化">退化</a></li>
<li><a href="#建立连接">建立连接</a></li>
<li><a href="#传输">传输</a></li>
<li><a href="#删除连接">删除连接</a></li>
</ul>
</li>
<li><a href="#攻击型技能">攻击型技能</a><ul>
<li><a href="#轰炸">轰炸</a></li>
<li><a href="#天灾">天灾</a></li>
</ul>
</li>
<li><a href="#防御型技能">防御型技能</a><ul>
<li><a href="#再生">再生</a></li>
<li><a href="#庇护">庇护</a></li>
</ul>
</li>
<li><a href="#采集型技能">采集型技能</a><ul>
<li><a href="#过载">过载</a></li>
<li><a href="#空投">空投</a></li>
</ul>
</li>
<li><a href="#sdk-2">SDK</a><ul>
<li><a href="#consth">const.h</a></li>
<li><a href="#sdkh">sdk.h</a></li>
<li><a href="#pplayerinfoh">PPlayerInfo.h</a></li>
<li><a href="#interpreterh">interpreter.h</a></li>
</ul>
</li>
<li><a href="#ai编写">AI编写</a></li>
<li><a href="#faq">FAQ</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>



<h2 id="逻辑更新日志">逻辑更新日志</h2>



<h3 id="3月31日紧急更新">3月31日紧急更新</h3>



<h4 id="sdk">SDK</h4>

<ul><li>修正了一处解析事件时可能导致解析失败与AI跳出的bug。</li>
<li>修正了一处头文件错误</li>
</ul>



<h3 id="3月30日更新">3月30日更新</h3>



<h4 id="sdk-1">SDK</h4>

<ul><li>SDK现在可以读取上回合对手做出的所有行动了，存储于<code>PPlayerInfo::events</code>中。</li>
<li>合并了 robotType 与 RobotType</li>
<li>修正了SDK中若干错误的包含关系。</li>
<li>修正了样例AI中的设计错误。</li>
</ul>



<h4 id="修复">修复</h4>

<ul><li>修正了一个在连接时的判断错误在MSVC环境下造成的逻辑崩溃。</li>
<li>修正了一个由于浮点数运算误差导致不同环境下结果不匹配的问题。</li>
<li>修正了采集范围设置不正确导致采集范围实际大于预期的问题。</li>
<li>修正了链接操作的结算顺序错误。</li>
<li>修正了庇护技能有消耗的错误。</li>
</ul>



<h4 id="游戏性">游戏性</h4>

<ul><li>调整了升级的需求和属性的<code>Exp</code>，降低了等级之间的差异。</li>
<li><code>levelBias</code>被提升</li>
<li>刚分裂的机器人现在具有能量。</li>
<li>降低了空投与链接的延迟</li>
<li>增加了防御公式的防御基础数值，降低了防御力的效果。</li>
</ul>



<h2 id="概述">概述</h2>

<p>在本文档中，所有这种 <code>Like_this</code> 字体的文字，表示一个文件名，或表示你能在SDK中找到并使用的一个关键字。如果它是一个数值，你可以在<code>const.h</code>中找到它的值（在没有其他说明的情况下）。</p>



<h3 id="地图游戏目标">地图、游戏目标</h3>

<p>游戏在一个正方形的网格地图上进行，地图的大小为<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ee070bffef288cab28aad0517a35741b"><span class="MathJax_SVG" id="MathJax-Element-204-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>MAP_SIZE</code>) <span xmlns="http://www.w3.org/1999/xhtml" class="" rel="bdbf342b57819773421273d508dba586"><span class="MathJax_SVG" id="MathJax-Element-2-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="12.7083" height="11.6458" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span> <span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ee070bffef288cab28aad0517a35741b"><span class="MathJax_SVG" id="MathJax-Element-204-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>MAP_SIZE</code>)。地图的每个格子是空地或障碍物，其定义见<code>MAP</code>。</p>

<p>游戏双方将各控制若干机器人进行生产与对战。玩家只能在空地上建造机器人。初始时，双方在地图的两个接近对角的位置（(<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="da2d2542823daca235ebe489b76887bb"><span class="MathJax_SVG" id="MathJax-Element-144-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>TEAM1_POS_X</code>),<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="76c5792347bb90ef71cfbace628572cf"><span class="MathJax_SVG" id="MathJax-Element-289-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>TEAM1_POS_Y</code>))与(<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="76c5792347bb90ef71cfbace628572cf"><span class="MathJax_SVG" id="MathJax-Element-289-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>TEAM2_POS_X</code>),<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="da2d2542823daca235ebe489b76887bb"><span class="MathJax_SVG" id="MathJax-Element-144-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>TEAM2_POS_Y</code>))）各拥有一个机器人。</p>

<p>如果某个玩家消灭了对方所有的机器人，则该玩家获得胜利。如果<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="25df05ed4b8476cb9a1a3db76ae8f22c"><span class="MathJax_SVG" id="MathJax-Element-150-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>MAX_ROUND</code>)回合后没有分出胜负，则系统将会根据局面信息计算出优势方，判定其获胜。（具体方法之后会介绍）</p>



<h2 id="能量与采集">能量与采集</h2>

<p>每个机器人具有一个能量值，双方的初始机器人各具有<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="fa35043f335bc43f27e21bc02c268be9"><span class="MathJax_SVG" id="MathJax-Element-9-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="48.7188" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>baseEnergy</code>)的能量值。能量可以通过采集获得，用于自然消耗与施放技能等的消耗。</p>

<p>地图中每个格子具有一个能量系数（<code>ENERGY</code>），每个机器人每回合会自动采集身边不超过<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ecf4fe2774fd9244b4fd56f7e76dc882"><span class="MathJax_SVG" id="MathJax-Element-281-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>GatherRange</code>)的算术平方根距离的能量，在每个格子的采集量等于机器人的采集力与格子的能量系数的乘积。</p>

<p>然而，如果一个格子同时在多个机器人的采集范围内，则只有那些离格子最近的机器人会参与采集。这些格子的能量系数（<code>ENERGY</code>）会被最近的这些机器人均分。</p>



<h3 id="分裂进退化">分裂、进退化</h3>

<p>每个玩家除了初始的机器人以外，还可以通过分裂（或其他方法，见后述）创造新的机器人。</p>

<p>每个机器人有一个等级，初始时为0。每个机器人每回合都会消耗一定量的能量，这个消耗量和机器人的各项战斗能力（生命值、攻击力等）均与等级成指数增长关系。具体计算方式见<code>stats.cpp</code>。</p>

<p>在自动消耗完成后，机器人会自动恢复<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="930f16f65c521e0e55d346532bbc4cc6"><span class="MathJax_SVG" id="MathJax-Element-11-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="24.3542" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>RecoveryHPRate</code>)的HP。如果某个机器人的能量不足其自动消耗量，则会本回合不会消耗能量，但会改为扣减<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="7ed968f34b148853b2247bf371e08496"><span class="MathJax_SVG" id="MathJax-Element-12-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="24.3542" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>-WitherHPRate</code>)的HP。</p>

<p>机器人可以消耗一定的能量进行进化，使自己的等级提升；或选择降低自己的等级，并获得一部分返还的能量。返还的能量为当初进化所消耗的能量的<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="34cae016d8e4805f60faa6d65887e976"><span class="MathJax_SVG" id="MathJax-Element-284-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="33.8854" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>VestigialLost</code>)。</p>



<h3 id="机器人类型与技能">机器人类型与技能</h3>

<p>机器人分为攻击型、防御型、采集型机器人和无类型机器人。每个机器人初始时无类型。</p>

<p>当机器人进化时，如果原来属于无类型机器人，玩家可以选择将其类型变为任意一种类型；否则不能改变。</p>

<p>当机器人退化时，即使机器人已经有了类型，玩家也可以将其转换为另一种类型。然而，当退化到0级时只能退化为无类型机器人。</p>

<p>游戏共有十多种技能，包括公共技能、攻击型技能、防御型技能、采集型技能。所有机器人都可以使用公共技能，但是其他技能只有该类型的机器人才能使用。</p>

<p>公共技能包括：普通攻击、分裂、进化、退化、建立连接、传输、删除连接。</p>

<p>攻击型技能包括：天灾、轰炸。</p>

<p>防御型技能包括：庇护、再生。</p>

<p>采集型技能包括：过载、空投。</p>



<h2 id="单位属性">单位属性</h2>

<p>单位属性分为以下几种：</p>



<h3 id="最大hp">最大HP</h3>

<ul><li>名称： <code>max_hp</code></li>
<li>效果：描述机器人的最大生命值</li>
<li>当类型为<strong>防御型</strong>时，最大HP是同等级其他机器人的2倍。</li>
</ul>



<h3 id="攻击力">攻击力</h3>

<ul><li>名称： <code>attack</code></li>
<li>效果：描述机器人的攻击威力</li>
<li>当类型为<strong>攻击型</strong>时，攻击力是同等级其他机器人的2倍。</li>
</ul>



<h3 id="防御力">防御力</h3>

<ul><li>名称： <code>defense</code></li>
<li>效果：描述机器人的防御伤害的效果</li>
<li>当计算伤害时，机器人受到的实际伤害为 <span xmlns="http://www.w3.org/1999/xhtml" class="" rel="22cf46ffff67265e7168401380ae767a"><span class="MathJax_SVG" id="MathJax-Element-14-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="316.688" height="31.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>，并下取整。</li>
</ul>



<h3 id="采集效率">采集效率</h3>

<ul><li>名称：<code>efficiency</code></li>
<li>效果：描述机器人采集能量的效率</li>
<li>当类型为<strong>采集型</strong>时，采集效率是同等级其他类型机器人的两倍。</li>
</ul>



<h3 id="传输效率">传输效率</h3>

<ul><li>名称：<code>capacity</code></li>
<li>效果：描述机器人每回合最大的向外传输量</li>
<li>当类型为<strong>采集型</strong>时，传输效率是同等级其他类型机器人的两倍。</li>
</ul>



<h3 id="消耗">消耗</h3>

<ul><li>名称：<code>consumption</code></li>
<li>效果：描述机器人每回合的固定能量消耗</li>
</ul>



<h3 id="升级所需要的能量总量">升级所需要的能量总量</h3>

<ul><li>不显示的属性</li>
<li>实际升级或降级时， 以两个等级的能量总量之间的差值进行计算。</li>
</ul>

<p>各项属性的公式均为<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="c17fcb8a64d41af33851a37344929f83"><span class="MathJax_SVG" id="MathJax-Element-245-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="122.865" height="16.9479" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>，其中 <span xmlns="http://www.w3.org/1999/xhtml" class="" rel="50b009a8cc13a14aebb67c7460335575"><span class="MathJax_SVG" id="MathJax-Element-16-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="123.917" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span> <span xmlns="http://www.w3.org/1999/xhtml" class="" rel="9612eecfec9dadf1a81d296bd2473777"><span class="MathJax_SVG" id="MathJax-Element-279-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>levelBias</code>) <br>
。数值见下表:</p>

<table>
<thead>
<tr>
  <th>属性名</th>
  <th><code>maxhp</code></th>
  <th><code>attack</code></th>
  <th><code>defense</code></th>
  <th><code>efficiency</code></th>
  <th><code>capacity</code></th>
  <th><code>consumption</code></th>
  <th>LevelUP Consumption</th>
</tr>
</thead>
<tbody><tr>
  <td><code>base</code></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="25df05ed4b8476cb9a1a3db76ae8f22c"><span class="MathJax_SVG" id="MathJax-Element-150-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="321d40fbe58f2e8c27e9964b658fbf62"><span class="MathJax_SVG" id="MathJax-Element-203-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b0c08f9b595a704efb907fc688034d80"><span class="MathJax_SVG" id="MathJax-Element-285-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="034d0a6be0424bffe9a6e7ac9236c0f5"><span class="MathJax_SVG" id="MathJax-Element-215-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="08f4ed92f27cec32cdd7a6ecd580f9e7"><span class="MathJax_SVG" id="MathJax-Element-214-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="cde2d598001a947a6afd044a43d15629"><span class="MathJax_SVG" id="MathJax-Element-246-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="24.3542" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b0c08f9b595a704efb907fc688034d80"><span class="MathJax_SVG" id="MathJax-Element-285-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><code>Exp</code></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="034d0a6be0424bffe9a6e7ac9236c0f5"><span class="MathJax_SVG" id="MathJax-Element-215-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="63d85c038c6f19c98cb1b9415e69a278"><span class="MathJax_SVG" id="MathJax-Element-167-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="24.3542" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="fc886c6c7fedefc1c957e3c182231aff"><span class="MathJax_SVG" id="MathJax-Element-183-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="24.3542" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="c8e9c442dec91073c83bab2df59271bb"><span class="MathJax_SVG" id="MathJax-Element-199-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="33.8854" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="c8e9c442dec91073c83bab2df59271bb"><span class="MathJax_SVG" id="MathJax-Element-199-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="33.8854" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="f1833607f75102fd50e6da7a7faf0118"><span class="MathJax_SVG" id="MathJax-Element-247-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="33.8854" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="f1833607f75102fd50e6da7a7faf0118"><span class="MathJax_SVG" id="MathJax-Element-247-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="33.8854" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="29632a9bf827ce0200454dd32fc3be82"><span class="MathJax_SVG" id="MathJax-Element-136-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="63706299eb148f15aea254a0a19966f1"><span class="MathJax_SVG" id="MathJax-Element-152-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="53749653bbe6b0f1e602db7bb6f44c3e"><span class="MathJax_SVG" id="MathJax-Element-168-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="08f4ed92f27cec32cdd7a6ecd580f9e7"><span class="MathJax_SVG" id="MathJax-Element-214-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b7afe912ac7ed280f96e7cfb0f35a027"><span class="MathJax_SVG" id="MathJax-Element-200-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="505b66e1b09c0768b24d75a07ca0b389"><span class="MathJax_SVG" id="MathJax-Element-216-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="15d851cfce799553cec908376fe8edd9"><span class="MathJax_SVG" id="MathJax-Element-248-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="3e4ec1bc4b8b815c0ba0d5ec2edd53e4"><span class="MathJax_SVG" id="MathJax-Element-232-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="034d0a6be0424bffe9a6e7ac9236c0f5"><span class="MathJax_SVG" id="MathJax-Element-215-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="124a322b51f8b8228ecd83a0a70c995d"><span class="MathJax_SVG" id="MathJax-Element-153-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="04814e3f5eb817f583c858ab3b6ac43e"><span class="MathJax_SVG" id="MathJax-Element-169-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="bd669e320acfb81a7fe41de6e6523c08"><span class="MathJax_SVG" id="MathJax-Element-185-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="4383b081cba8f285e7854426f9ea1e6d"><span class="MathJax_SVG" id="MathJax-Element-201-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="2bdaae729e504043557b55b0bc346f8f"><span class="MathJax_SVG" id="MathJax-Element-217-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="3db324e658fa234e304758bcbb9a477a"><span class="MathJax_SVG" id="MathJax-Element-249-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="5bec2f7c4a970436529fa7584826c294"><span class="MathJax_SVG" id="MathJax-Element-233-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="76c5792347bb90ef71cfbace628572cf"><span class="MathJax_SVG" id="MathJax-Element-289-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="bf18fae82157a74ddf97385e5f8b8cc3"><span class="MathJax_SVG" id="MathJax-Element-154-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="5a144db19392c99b931f444caccafa69"><span class="MathJax_SVG" id="MathJax-Element-170-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b220826e8e05ad0a718c4ad0fd34e21e"><span class="MathJax_SVG" id="MathJax-Element-250-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="7ee94e64f8d5936cc5f263d0ed987bee"><span class="MathJax_SVG" id="MathJax-Element-202-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b454326f16241db45d00974c2cec87c5"><span class="MathJax_SVG" id="MathJax-Element-218-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b220826e8e05ad0a718c4ad0fd34e21e"><span class="MathJax_SVG" id="MathJax-Element-250-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ad2431c6df098b70fa400b6965998ed7"><span class="MathJax_SVG" id="MathJax-Element-234-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ecf4fe2774fd9244b4fd56f7e76dc882"><span class="MathJax_SVG" id="MathJax-Element-281-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="bd0697e9d92c58555b4cbd2da25a0d15"><span class="MathJax_SVG" id="MathJax-Element-155-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="8a97ae40ce1e4b8c256505936d8daaa5"><span class="MathJax_SVG" id="MathJax-Element-171-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ee768bf38f5b25024fb23034c125b7fd"><span class="MathJax_SVG" id="MathJax-Element-187-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="321d40fbe58f2e8c27e9964b658fbf62"><span class="MathJax_SVG" id="MathJax-Element-203-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="d0e40453973e3f7fc8f8cd2e16d0a014"><span class="MathJax_SVG" id="MathJax-Element-219-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="a37c4e25d1a5dc44e39fa7e076651271"><span class="MathJax_SVG" id="MathJax-Element-251-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="8b7aed1cfaf8f850e74cb82dba87bb52"><span class="MathJax_SVG" id="MathJax-Element-235-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="327c36301dc71617dc7032f8ce30b236"><span class="MathJax_SVG" id="MathJax-Element-140-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="fbfa39df3c5d889c9ff29c2e96ad81dc"><span class="MathJax_SVG" id="MathJax-Element-156-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="7b80efb450f4e9878575275f91b3ff06"><span class="MathJax_SVG" id="MathJax-Element-172-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="59386c1bd0163fecc3c72fa8a739c899"><span class="MathJax_SVG" id="MathJax-Element-188-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ee070bffef288cab28aad0517a35741b"><span class="MathJax_SVG" id="MathJax-Element-204-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="0413fff7024cad64eec6b5da94b97c4e"><span class="MathJax_SVG" id="MathJax-Element-220-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="78d4849d79baaa4ef6e414a74e8143da"><span class="MathJax_SVG" id="MathJax-Element-252-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="af2ee18f1c0d331e726c3ac0de362e14"><span class="MathJax_SVG" id="MathJax-Element-236-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="005c128d6e551735fa5d938e44e7a613"><span class="MathJax_SVG" id="MathJax-Element-276-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="f5eaed53f20cd4bb4a5a735031ebf610"><span class="MathJax_SVG" id="MathJax-Element-157-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b9899da72a748536ae374f2503edac56"><span class="MathJax_SVG" id="MathJax-Element-173-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="6c43c24094262096b55f95b5df0ef810"><span class="MathJax_SVG" id="MathJax-Element-189-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="921c8ac812959aa7753eaddf409f454a"><span class="MathJax_SVG" id="MathJax-Element-205-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="d34e22ddd4822e41771c3cf02218891d"><span class="MathJax_SVG" id="MathJax-Element-221-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="db04108b2c18960635e7b36beb952c91"><span class="MathJax_SVG" id="MathJax-Element-253-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="8782c8994cf682a3282b42c103b18bdc"><span class="MathJax_SVG" id="MathJax-Element-237-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="7ee94e64f8d5936cc5f263d0ed987bee"><span class="MathJax_SVG" id="MathJax-Element-202-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="68c2ac99cce135079f03b73f2508b4d9"><span class="MathJax_SVG" id="MathJax-Element-158-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="665e38ffb5ba0ed0d89c416ace97a4c6"><span class="MathJax_SVG" id="MathJax-Element-174-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="16e26c4dd48e027d2436af83312a1510"><span class="MathJax_SVG" id="MathJax-Element-190-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="9b316764e592d513c7c6be2b9e112d73"><span class="MathJax_SVG" id="MathJax-Element-206-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="c56dfadc3457cb09c2f3e2eb742f609d"><span class="MathJax_SVG" id="MathJax-Element-222-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="9684129ebb778f48019391de80875252"><span class="MathJax_SVG" id="MathJax-Element-254-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="a7e86518789ea0867f38318e15109853"><span class="MathJax_SVG" id="MathJax-Element-238-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="97bf7caa3d50b647a3f7ad55fce88b5b"><span class="MathJax_SVG" id="MathJax-Element-143-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="cf7e103849e885e986683694441ffb99"><span class="MathJax_SVG" id="MathJax-Element-159-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="4043bcfb023c007c90a99533d6b529ad"><span class="MathJax_SVG" id="MathJax-Element-175-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="a0a8e3b85be4b98b8ca584c00632a01f"><span class="MathJax_SVG" id="MathJax-Element-191-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b220826e8e05ad0a718c4ad0fd34e21e"><span class="MathJax_SVG" id="MathJax-Element-250-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="5d813f7228f54669355907a0a17668a5"><span class="MathJax_SVG" id="MathJax-Element-223-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ec743f6dfc0334fc2b308bc46ade48bc"><span class="MathJax_SVG" id="MathJax-Element-255-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b4cdf3704355a19eb726857987e68065"><span class="MathJax_SVG" id="MathJax-Element-239-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="da2d2542823daca235ebe489b76887bb"><span class="MathJax_SVG" id="MathJax-Element-144-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="a394585f8e187638a295492d2f8d019b"><span class="MathJax_SVG" id="MathJax-Element-160-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="48.7188" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="2ba19af6ea0614af019e1acef727a478"><span class="MathJax_SVG" id="MathJax-Element-176-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="4a47e5e83e2bf0777295cd8eee291a65"><span class="MathJax_SVG" id="MathJax-Element-192-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b3f8830b237658b2e64f9849bc647471"><span class="MathJax_SVG" id="MathJax-Element-208-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="eee912aa1ca2d09a07c4eeb55bfec379"><span class="MathJax_SVG" id="MathJax-Element-224-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="183425a7ff48d07f1b079787033c4a8a"><span class="MathJax_SVG" id="MathJax-Element-256-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="3cc5f0b296888dc9b3b4d028816ed724"><span class="MathJax_SVG" id="MathJax-Element-240-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="48.7188" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="a4ffd9a2324f5dcc8182bce900c01465"><span class="MathJax_SVG" id="MathJax-Element-145-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="1c006045f3bd8993f28482603ec1f25b"><span class="MathJax_SVG" id="MathJax-Element-161-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="48.7188" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="16384e4772b4057c2a6d156fc6f39c47"><span class="MathJax_SVG" id="MathJax-Element-177-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="164b2d20dddf0b33f17a5ae1139a77d8"><span class="MathJax_SVG" id="MathJax-Element-212-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="6d25c8494444c5833059403617003de2"><span class="MathJax_SVG" id="MathJax-Element-209-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="34ef3967c3a9a5297a86741058f61b32"><span class="MathJax_SVG" id="MathJax-Element-225-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="2897241731ca4a5900e00125b5668e51"><span class="MathJax_SVG" id="MathJax-Element-257-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="9d58a6ee80e7bcb8229c5d28cff4b152"><span class="MathJax_SVG" id="MathJax-Element-241-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="48.7188" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="7acc185115b9ffabc044e2079b245b8d"><span class="MathJax_SVG" id="MathJax-Element-146-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="681ed871f4091bbaf1ff49307373c990"><span class="MathJax_SVG" id="MathJax-Element-162-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="48.7188" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="305de82339f03f8917db4c03e7ab3111"><span class="MathJax_SVG" id="MathJax-Element-178-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="65ced4ade8c79e5540130560034bae80"><span class="MathJax_SVG" id="MathJax-Element-194-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="a37c4e25d1a5dc44e39fa7e076651271"><span class="MathJax_SVG" id="MathJax-Element-251-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="1d18fc74bf30f537698f853944e844f3"><span class="MathJax_SVG" id="MathJax-Element-226-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="bf3f081c35f9142e9a896c6f365200fd"><span class="MathJax_SVG" id="MathJax-Element-258-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="c3426b3e8842ac471d26a00d2a253d40"><span class="MathJax_SVG" id="MathJax-Element-242-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="48.7188" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="1bf645cff3a2e4b7a064ce0036d62511"><span class="MathJax_SVG" id="MathJax-Element-147-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="3293140b58babd8e0b1481469ece5fdc"><span class="MathJax_SVG" id="MathJax-Element-163-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="48.7188" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="19b32902cbba599d47291333cbacfcb9"><span class="MathJax_SVG" id="MathJax-Element-179-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="38273982cb43cffdf7b5d7ecb5199434"><span class="MathJax_SVG" id="MathJax-Element-195-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="7359e431bfbe6863db979a00a098f38f"><span class="MathJax_SVG" id="MathJax-Element-211-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="efa6571703f5836f45bf0665cafe07c4"><span class="MathJax_SVG" id="MathJax-Element-227-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ce2f4a30bc6eefad6de95d4a908c33bd"><span class="MathJax_SVG" id="MathJax-Element-259-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="3a4f2693d1cbe0091939ea5efbc46df2"><span class="MathJax_SVG" id="MathJax-Element-243-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="48.7188" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
<tr>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="9cb3c0a68645bef07ea731f2c7f52c22"><span class="MathJax_SVG" id="MathJax-Element-148-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>级属性</td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ceffaf48d2d014292d9d87b774bf34f8"><span class="MathJax_SVG" id="MathJax-Element-164-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="48.7188" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="8368872a84da2b3914bd76e8f98dd28c"><span class="MathJax_SVG" id="MathJax-Element-180-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="f384cd199e830baa69080a9e38c0e1e2"><span class="MathJax_SVG" id="MathJax-Element-196-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="164b2d20dddf0b33f17a5ae1139a77d8"><span class="MathJax_SVG" id="MathJax-Element-212-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="59c294005c6ab310a36b6a78287f4ec9"><span class="MathJax_SVG" id="MathJax-Element-228-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="a2249e2f7fc893d03616657bedd5ceac"><span class="MathJax_SVG" id="MathJax-Element-260-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
  <td><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="6e2769192678db27a01f9c58ebaa92b5"><span class="MathJax_SVG" id="MathJax-Element-244-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="48.7188" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span></td>
</tr>
</tbody></table>


<p>**请尽可能不要使用硬编码的数值，应该使用<code>stats::getxxx</code>系列函数，如<code>stats::getMaxHP</code>。 <br>
否则我们的平衡性修改可能会对你的程序造成很大的影响**</p>



<h2 id="游戏流程">游戏流程</h2>



<h3 id="回合结算流程">回合结算流程</h3>

<p>在每个回合内，双方依次行动，分别下达指令，然后统一进行计算。</p>

<p>不同玩家执行操作时若遇到冲突（比如同时在一个格子上建立机器人或者空投），按照“12211221……”的次序决定优先权，即：首回合玩家1优先，接下来的两回合玩家2优先，在接下来的两回合玩家1优先……注意这个回合数也包括了未产生冲突的回合。</p>

<p>回合结算的顺序按照以下的列表：</p>

<ul><li>采集阶段（<code>ProduceTurn</code>），所有机器人采集养分</li>
<li>连接阶段（<code>LinkTurn</code>），所有机器人进行连接</li>
<li>传输阶段（<code>TransferTurn</code>），所有机器人传输能量</li>
<li>进退化阶段（<code>EvolveTurn</code>），所有机器人进行进化和退化</li>
<li>属性计算阶段（<code>StatsCalculationTurn</code>），进行一次属性重算</li>
<li>辅助技能阶段（<code>AuxiliaryTurn</code>），使用所有辅助类技能</li>
<li>Buff技能阶段（<code>Buff</code>），结算所有Buff的效果</li>
<li>攻击阶段（<code>AttackTurn</code>），使用所有伤害和回复类技能</li>
<li>自动恢复阶段（<code>AutoRecoveryTurn</code>），进行自动恢复</li>
</ul>



<h3 id="胜负判定">胜负判定</h3>

<p>若一方失去了所有的机器人，游戏结束，该方判负。若双方在同一回合失去了所有机器人，则判为平局。</p>

<p>若指定回合后没有分出胜负，将以场上机器人的总价值大小判断胜负。</p>

<p>一个机器人的价值，等于其能量与从0级进化到该机器人等级所需的能量之和。</p>



<h2 id="公共技能">公共技能</h2>

<p>一个技能的冷却时间是指，连续两次使用该技能至少应等待的回合数。例如：冷却时间为2表示，至多每2回合可以使用一次这个技能；冷却时间为1表示，每回合都可以使用一次这个技能；冷却时间为0表示，每回合可以多次使用这个技能。</p>

<p>注意在编写AI时，由于所有机器人都可以使用公共技能（本节内所有技能），所以已经冷却完毕的<strong>公共</strong>技能可能不会出现在某个机器人的技能列表中。</p>

<p>对于所有技能，如果你使用SDK，且技能的参数需要传入某个机器人的<code>id</code>，只需要在SDK中传入其位置<code>pos</code>，SDK会自动将其转为<code>id</code>。</p>

<p>伤害类技能中会出现“几倍伤害”的字样，是指伤害值为技能施放者攻击力的几倍。这个数值还会根据受伤害者的防御力进行降低。</p>



<h3 id="普通攻击">普通攻击</h3>

<ul><li>指令名称/技能名称：<code>PlainAttack</code>/<code>PlainAttackSkill</code></li>
<li>消耗能量：无</li>
<li>冷却时间：1</li>
<li>参数：目标机器人的<code>id</code></li>
<li>有效范围：使用者的<code>attack_range</code>的算术平方根</li>
<li>结算阶段：攻击阶段（<code>AttackTurn</code>）</li>
</ul>

<p>效果：对目标机器人造成1倍伤害。</p>

<ul><li>可以攻击己方的机器人。</li>
<li>攻击阶段中目标机器人不会立刻死亡，只有在之后的死亡结算阶段才会死亡。</li>
</ul>



<h3 id="分裂">分裂</h3>

<ul><li>指令名称/技能名称：<code>Split</code>/<code>SplitSkill</code></li>
<li>消耗能量：<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="675eeb554f7b336873729327dab98036"><span class="MathJax_SVG" id="MathJax-Element-287-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>FixedSplitCost</code>)</li>
<li>冷却时间：0</li>
<li>参数：目标位置x，目标位置y</li>
<li>有效范围：<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="92d273224a0759f4895be999c9a6f5e3"><span class="MathJax_SVG" id="MathJax-Element-265-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>SplitRange</code>)的算术平方根</li>
<li>结算阶段：辅助技能阶段（<code>AuxiliaryTurn</code>）</li>
</ul>

<p>效果：在目标地点创建一个新的己方机器人，其初始能量值为<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="8e50ca67ab54ff4995e89c8b74040b11"><span class="MathJax_SVG" id="MathJax-Element-263-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="29.6458" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>FixedSplitPower</code>)。</p>

<ul><li>需要保证目标位置无机器人，且不是障碍物，否则分裂不成功。</li>
<li>同一机器人同一回合可在多个目标点分裂。@TODO:需要讨论</li>
<li>同一玩家同一回合多次分裂，按给出命令的次序依次结算。</li>
</ul>



<h3 id="进化">进化</h3>

<ul><li>指令名称/技能名称：<code>Evolve</code>/<code>EvolveSkill</code></li>
<li>消耗能量：<code>stats::getLevelUPConsumption(level + 1) - stats::getLevelUPConsumption(level)</code>，其中<code>level</code>为机器人的当前等级</li>
<li>冷却时间：0</li>
<li>参数：希望进化为的类型</li>
<li>结算阶段：进退化阶段（<code>EvolveTurn</code>）</li>
</ul>

<p>效果：自身等级<code>level</code>提升1级，并变为目标的类型。如果是从无类型机器人变为有类型，则获得其类型的技能并重置其冷却时间。</p>

<ul><li>无类型机器人可以进化为任何类型（或保持无类型），有类型机器人进化时只能保持原类型。如果给出的参数非法则进化无效。</li>
<li>同一机器人同一回合可多次进化。</li>
<li>SDK中有简便的<code>Evolve</code>函数，能添加一个将某个机器人按原类型进化一级的指令。</li>
</ul>



<h3 id="退化">退化</h3>

<ul><li>指令名称/技能名称：<code>Vestigial</code>/<code>VestigialSkill</code></li>
<li>获得能量：<code>(stats::getLevelUPConsumption(level) - stats::getLevelUPConsumption(level-1)) * VestigialLost</code>，其中<code>level</code>为机器人的当前等级</li>
<li>冷却时间：0</li>
<li>参数：希望退化为的类型</li>
<li>结算阶段：进退化阶段（<code>EvolveTurn</code>）</li>
</ul>

<p>效果：自身等级<code>level</code>降低1级，获得返还能量，其值为当初进化所需能量的<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="34cae016d8e4805f60faa6d65887e976"><span class="MathJax_SVG" id="MathJax-Element-284-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="33.8854" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>VestigialLost</code>)，并变为目标的类型。如果类型发生了改变，则失去原类型的技能并获得新类型（如有）的技能。</p>

<ul><li>如果退化到了0级，则只能退化为无类型机器人。如果给出的参数非法则退化无效。</li>
<li>同一机器人同一回合可多次退化。</li>
<li>SDK中有简便的<code>Vestigial</code>函数，能添加一个将某个机器人按原类型退化一级的指令。</li>
</ul>



<h3 id="建立连接">建立连接</h3>

<ul><li>指令名称/技能名称：<code>Connect</code>/<code>ConnectSkill</code></li>
<li>消耗能量：无</li>
<li>冷却时间：0</li>
<li>参数：目标机器人的<code>id</code></li>
<li>有效范围：<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="92d273224a0759f4895be999c9a6f5e3"><span class="MathJax_SVG" id="MathJax-Element-265-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>SplitRange</code>)的算术平方根</li>
<li>结算阶段：连接阶段（<code>LinkTurn</code>）</li>
</ul>

<p>效果：延迟<em>接下来的</em><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="76c5792347bb90ef71cfbace628572cf"><span class="MathJax_SVG" id="MathJax-Element-289-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>LinkBuildTime</code>)回合后，与目标机器人建立连接。连接是单向关系，使用者可以对其使用传输等技能。</p>

<ul><li>建立连接不能使该机器人向外连接的总边数超过其<code>outdeg</code>属性。</li>
<li>可以与对方机器人建立连接。</li>
<li>同一机器人同一回合可同时与多个机器人开始建立连接。</li>
<li>连接的任何一方死亡，则连接断开。</li>
</ul>



<h3 id="传输">传输</h3>

<ul><li>指令名称/技能名称：<code>Transfer</code>/<code>TransferSkill</code></li>
<li>消耗能量：可变</li>
<li>冷却时间：0</li>
<li>参数：目标机器人的<code>id</code>，要传输的能量值</li>
<li>结算阶段：传输阶段（<code>TransferTurn</code>）</li>
</ul>

<p>效果：自己消耗这些能量值，为对方加上这些能量值。使用者之前必须与目标建立过连接，否则无效。</p>

<ul><li>向外传输的总能量值不能超过使用者的传输容量<code>transport_capacity</code>。</li>
<li>同一机器人同一回合可以向多个不同的机器人进行传输。</li>
<li>允许使用者的能量值小于要传输的能量值，只要使用者能在传输阶段结束之前获得（从其他机器人传输来的）能量，使自己最终的能量值非负即可。</li>
<li>如果出现了非法情况（某个机器人的能量在传输阶段结束时能量为负），则该机器人本回合使用的所有传输操作无效。选手在编写的时候不应该出现非法的情况，否则复杂连接下非法，<strong>无效哪些传输</strong>这件事是无法确定的。</li>
<li>可以传输给对方机器人。</li>
</ul>



<h3 id="删除连接">删除连接</h3>

<ul><li>指令名称/技能名称：<code>Disconnect</code>/<code>DisconnectSkill</code></li>
<li>消耗能量：无</li>
<li>冷却时间：0</li>
<li>参数：目标机器人的<code>id</code></li>
<li>结算阶段：连接阶段（<code>LinkTurn</code>）</li>
</ul>

<p>效果：（立即）删除与目标的连接。使用者之前必须与目标建立过连接，否则无效。</p>

<ul><li>同一机器人同一回合可以删除与多个机器人的连接。</li>
</ul>



<h2 id="攻击型技能">攻击型技能</h2>



<h3 id="轰炸">轰炸</h3>

<ul><li>技能名称：<code>Bombing</code></li>
<li>冷却时间：<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b0c08f9b595a704efb907fc688034d80"><span class="MathJax_SVG" id="MathJax-Element-285-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>BombingCD</code>)</li>
<li>技能射程：<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="abdb510e84d101c6d4ae3fe32761101b"><span class="MathJax_SVG" id="MathJax-Element-268-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>BombingRange</code>)的算术平方根</li>
<li>覆盖范围：以目标位置为中心，半径为<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ecf4fe2774fd9244b4fd56f7e76dc882"><span class="MathJax_SVG" id="MathJax-Element-281-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>BombingRadius</code>)的算术平方根的圆</li>
<li>参数：目标位置x，目标位置y</li>
<li>结算阶段：攻击阶段（<code>AttackTurn</code>）</li>
</ul>

<p>效果：造成范围伤害，伤害值为普通攻击的<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="532d5a018cfbd4777fc00cad5cc11d12"><span class="MathJax_SVG" id="MathJax-Element-270-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="43.4167" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>BombingDamage</code>)。</p>



<h3 id="天灾">天灾</h3>

<ul><li>技能名称：<code>Scourge</code></li>
<li>冷却时间：<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b0c08f9b595a704efb907fc688034d80"><span class="MathJax_SVG" id="MathJax-Element-285-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>ScourgeCD</code>)</li>
<li>技能射程：与普通攻击相同</li>
<li>参数：目标机器人的<code>id</code></li>
<li>伤害：普通攻击的<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="e065f2ebe0e614eff29483ac1b642605"><span class="MathJax_SVG" id="MathJax-Element-282-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="43.4167" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>ScourgeDamage</code>)</li>
<li>结算阶段：攻击阶段（<code>AttackTurn</code>）</li>
</ul>

<p>效果：对目标施加一个Debuff，每回合扣减相当于当前一次攻击伤害的血量。这个Debuff将会在目标所有连接的其他机器人上传递，但不会传递到已经具有这个Debuff的机器人上。当Debuff传递时，伤害值会按照血量传递，而无视防御值的影响。</p>



<h2 id="防御型技能">防御型技能</h2>



<h3 id="再生">再生</h3>

<ul><li>技能名称：<code>Recover</code></li>
<li>冷却时间：<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="5dc642f297e291cfdde8982599601d7e"><span class="MathJax_SVG" id="MathJax-Element-273-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>RecoverCD</code>)</li>
<li>参数：目标<code>id</code></li>
<li>结算阶段：攻击阶段（<code>AttackTurn</code>）</li>
</ul>

<p>效果：恢复目标相当于自身最大HP的<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="d5e0a3e98c16d4f73e3c3f7e51d60cd9"><span class="MathJax_SVG" id="MathJax-Element-274-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="33.8854" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>RecoverMaxHPRate</code>)的血量。</p>

<ul><li>这个技能只能对自己或自己连接的目标释放。</li>
</ul>



<h3 id="庇护">庇护</h3>

<ul><li>技能名称：<code>Shielding</code></li>
<li>冷却时间：<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b0c08f9b595a704efb907fc688034d80"><span class="MathJax_SVG" id="MathJax-Element-285-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>ShieldingCD</code>)</li>
<li>参数：无</li>
<li>效果范围：以使用者为中心，半径为<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="005c128d6e551735fa5d938e44e7a613"><span class="MathJax_SVG" id="MathJax-Element-276-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>ShieldingRadius</code>)的算术平方根的圆</li>
<li>结算阶段：辅助技能阶段（<code>AuxiliaryTurn</code>）</li>
</ul>

<p>效果：庇护自身周围的单位。范围内的单位防御获得相当于自身防御力<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="35aaaadb6d6ebf4c54137125288fa556"><span class="MathJax_SVG" id="MathJax-Element-277-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="33.8854" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>DefenseShareRate</code>)的加成，范围内的敌方单位攻击力为原来的<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="7c87e7aea88df5dee5c9060b71c66b26"><span class="MathJax_SVG" id="MathJax-Element-278-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="33.8854" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>AttackRate</code>)。Buff或Debuff持续<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="9612eecfec9dadf1a81d296bd2473777"><span class="MathJax_SVG" id="MathJax-Element-279-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>ShieldingLast</code>)回合</p>



<h2 id="采集型技能">采集型技能</h2>



<h3 id="过载">过载</h3>

<ul><li>技能名称：<code>Overload</code></li>
<li>冷却时间：<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b0c08f9b595a704efb907fc688034d80"><span class="MathJax_SVG" id="MathJax-Element-285-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>OverloadCD</code>)</li>
<li>参数：无</li>
<li>结算阶段：辅助技能阶段（<code>AuxiliaryTurn</code>）</li>
</ul>

<p>效果：暂时提升自己的采集能力。在<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="ecf4fe2774fd9244b4fd56f7e76dc882"><span class="MathJax_SVG" id="MathJax-Element-281-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>HighRank</code>)回合内获得<code>OverloadHighBuff</code>，采集和传输能力上升<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="e065f2ebe0e614eff29483ac1b642605"><span class="MathJax_SVG" id="MathJax-Element-282-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="43.4167" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>。在之后的<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b0c08f9b595a704efb907fc688034d80"><span class="MathJax_SVG" id="MathJax-Element-285-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>LowRank</code>)回合内获得<code>OverloadLowBuff</code>，采集和传输能力下降<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="34cae016d8e4805f60faa6d65887e976"><span class="MathJax_SVG" id="MathJax-Element-284-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="33.8854" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>。</p>

<ul><li>同一个Buff不能叠加，再次获得同样的Buff时，前一个Buff自动失效。</li>
<li>两个Buff可以同时持有，效果叠加。</li>
</ul>



<h3 id="空投">空投</h3>

<ul><li>技能名称：<code>Airborne</code></li>
<li>冷却时间：<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b0c08f9b595a704efb907fc688034d80"><span class="MathJax_SVG" id="MathJax-Element-285-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="19.0625" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>AirborneCD</code>)</li>
<li>消耗能量：可变，至少为<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="675eeb554f7b336873729327dab98036"><span class="MathJax_SVG" id="MathJax-Element-287-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>FixedAirborneCost</code>)</li>
<li>参数：目标位置，希望传递的能量值</li>
<li><p>结算阶段：辅助技能阶段（<code>AuxiliaryTurn</code>） <br>
效果：消耗自己的能量，在指定位置产生一个机器人。消耗量为<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="675eeb554f7b336873729327dab98036"><span class="MathJax_SVG" id="MathJax-Element-287-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="39.1771" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>FixedAirborneCost</code>)加上你想要传递的能量值。你想要传递的能量值将会乘上<span xmlns="http://www.w3.org/1999/xhtml" class="" rel="b0b768d46cbdc9d90136a08751e705cb"><span class="MathJax_SVG" id="MathJax-Element-288-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="24.3542" height="14.8229" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>AirborneLost</code>)之后，在<em>接下来的</em><span xmlns="http://www.w3.org/1999/xhtml" class="" rel="76c5792347bb90ef71cfbace628572cf"><span class="MathJax_SVG" id="MathJax-Element-289-Frame" role="textbox" aria-readonly="true" style="font-size: 100%; display: inline-block;"><span><img type="image/png" width="9.53125" height="13.7708" longdesc="__SVG__undefined" src="" style="margin-top:0;margin-bottom:0;"></span></span></span>(<code>AirborneTurn</code>)回合内均匀地转移到该机器人身上。</p></li>
<li><p>该技能没有射程限制。</p></li>
</ul>



<h2 id="sdk-2">SDK</h2>

<p>SDK包含以下的文件：</p>



<h3 id="consth">const.h</h3>

<p>定义游戏中出现的所有常量</p>



<h3 id="sdkh">sdk.h</h3>

<p>包含了<code>PPlayerInfo.h</code>与<code>interpreter.h</code>。</p>



<h3 id="pplayerinfoh">PPlayerInfo.h</h3>

<p>定义了可以用于包含游戏内各种元素的类的接口，可以让你更方便地与逻辑进行交互。</p>

<p>其中，<code>SDK::PPlayerInfo</code>描述局面信息，<code>SDK::PCommand</code>描述玩家操作。</p>



<h3 id="interpreterh">interpreter.h</h3>

<p>定义了sdk与逻辑接口的翻译函数，你只需要使用里面的函数即可。</p>



<h2 id="ai编写">AI编写</h2>

<p>AI的编写需要编写以下两个函数：</p>



<pre class="prettyprint hljs-dark"><code class="language-cpp hljs"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">player_ai</span><span class="hljs-params">(<span class="hljs-keyword">const</span> PlayerInfo &amp;, Commands &amp;, SDK::PShowInfo &amp;)</span></span><br></code></pre>

<p>这个函数完成AI的编写。其中，<code>PlayerInfo</code>描述玩家信息，<code>Commands</code>用来传递指令，<code>SDK::PShowInfo</code>用来传递给播放器一些额外信息。</p>



<pre class="prettyprint hljs-dark"><code class="language-cpp hljs"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">feedback_ai</span><span class="hljs-params">(<span class="hljs-built_in">vector</span>&lt;HumanOrder&gt;, PShowInfo &amp;)</span></span><br></code></pre>

<p>播放器每一帧都会调用这个函数，以完成人能实时给AI提示的功能。该函数应当解析输入的人类指令<code>vector&lt;HumanOrder&gt;</code>，处理后修改<code>PShowInfo</code>。注意，<code>feedback_ai</code>与<code>player_ai</code>是由两个程序调用的，不能共享地址空间（例如全局变量的值），你只能通过<code>PShowInfo</code>来进行两个函数间的交互。</p>

<p>你可以使用SDK来操作AI的编写，一个范例的程序如下</p>



<pre class="prettyprint hljs-dark"><code class="language-cpp hljs">PPlayerInfo playerInfo;<br>PCommand pCommand;<br>PShowInfo *pShowInfo;<br><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">player_ai</span><span class="hljs-params">(<span class="hljs-keyword">const</span> PlayerInfo &amp;playerInfo_, Commands &amp;pCommand_, SDK::PShowInfo &amp;pShowInfo_)</span> </span>{<br>    <span class="hljs-comment">//翻译PlayerInfo</span><br>    playerInfo = SDK::interpretPlayerInfo(playerInfo_);<br>    <span class="hljs-comment">/**<br>    * 此处加入AI代码<br>    */</span><br>    <span class="hljs-comment">//根据你的一些需求添加自动传输</span><br>    pCommand.AddAutoTransfer(playerInfo, weights, needs);<br>    <span class="hljs-comment">//翻译Commands</span><br>    pCommand_ = SDK::translateCommands(playerInfo, pCommand);<br>    pCommand.cmds.clear();<br>}<br><br></code></pre>

<p>以下是AI的编写提供的其他内部接口，你可以自由选择使用它们：</p>

<ul><li><code>PlayerInfo.h</code>：定义获得的指令。<code>PlayerInfo</code>类包含两个成员<code>status</code>与<code>push_data</code>，分别代表内容的</li>
<li><code>Commands.h</code>：定义下达的指令，用于与逻辑交互。包含类<code>Commands</code>和类<code>Command</code>。</li>
<li><code>misc.h</code>：定义一些常用函数。</li>
<li><code>point.h</code>：一个用于定义二维平面点的常用接口。</li>
</ul>



<h2 id="faq">FAQ</h2>

<ul><li>Q: 如何编译逻辑？</li>
<li>A: 你需要把SDK中所有包含的cpp文件加入文件。对于支持Unix Make的工具链，你可以使用附带的Makefile进行编译。直接输入<code>make</code>或<code>mingw32-make</code>即可完成编译。你也可以自己建立Visual Studio工程、CMake项目或是采用其他方法编译。</li>
<li>Q: 需要使用什么编译器？</li>
<li>A: 需要使用具有完整C++11支持的编译器。Windows下的MinGW工具链推荐使用TDM-GCC。</li>
<li>Q: api_test是什么？</li>
<li>A: 是附带的简单的逻辑运行器。使用 <code>api_test &lt;ai1&gt; &lt;ai2&gt; &lt;回合数&gt; [可选 &lt;随机种子&gt;]</code>即可对指定的AI运行逻辑。</li>
<li>Q: 为什么播放器无法在 Human Mode 下使用我的AI</li>
<li>A: 你没有编写<code>feedback_ai</code>。</li>
<li>Q: 逻辑崩溃/闪退了，如何检查错误。</li>
<li>A: 请检查工作目录下<code>logic_err_log.txt</code>文件。</li>
<li>Q: 附带AI乱码</li>
<li>A: 请用支持UTF-8的编辑器打开</li>
<li>Q: <code>logic_err_log.txt</code> 中出现 <code>no dll</code>错误</li>
<li>A: 常见错误代码： <code>193</code> 平台不匹配，请确认你是否混用了32位/64位的文件。</li>
<li>Q: <code>logic_err_log.txt</code> 中出现 <code>no ai</code>错误</li>
<li>A: 常见错误代码： <code>127</code> 你的DLL中无法找到AI对应的函数。请检查你的函数名，是否被<code>extern "C"</code>，使用MSVC时是否被设置DLL导出（<code>__declspec(dllexport)</code>）。</li>
</ul></div></body></html>